Subject: Frequently Asked Questions [Weekly reminder]
Newsgroups: comp.lang.lisp,comp.lang.scheme,comp.lang.clos
Summary: Answers to Frequently Asked Questions about the Lisp FAQ
Distribution: world
Followup-To: poster
Reply-To: lisp-faq@think.com

Last-Modified: Thu May 13 12:40:45 1993 by Mark Kantrowitz
Version: 1.34

;;; ******************************************************************
;;; Answers to Frequently Asked Questions about the Lisp/Scheme FAQs *
;;; ******************************************************************
;;; Written by Mark Kantrowitz and Barry Margolin
;;; lisp-faq-faq.text -- 11190 bytes

This is a reminder of the existence of the monthly FAQ postings to the
newsgroups comp.lang.lisp, comp.lang.scheme, and comp.lang.clos. These
FAQ postings answer Frequently Asked Questions (FAQs) about Lisp and
Lisp-like programming languages.

Certain questions and topics come up frequently in the various network
discussion groups devoted to and related to Lisp and Scheme.  The FAQ
posting is an attempt to gather these questions and their answers into
a convenient reference for Lisp and Scheme programmers.  It is posted
once a month.  The hope is that this will cut down on the user time
and network bandwidth used to post, read and respond to the same
questions over and over, as well as providing education by answering
questions some readers may not even have thought to ask.

***************************************************************************
***** SO, PLEASE, SEARCH THE FAQ POSTING FIRST IF YOU HAVE A QUESTION *****
*****                               AND                               *****
*****  DON'T POST ANSWERS TO FAQs: POINT THE ASKER TO THE FAQ POSTING *****
***************************************************************************

The FAQ postings are posted to the above-mentioned newsgroups on the
13th of every month. The posts are also sent to the newsgroup
news.answers where they should be available at any time (ask your local
news manager). This reminder is posted every Sunday.

The latest version of this file is available via anonymous FTP from CMU
and Thinking Machines: 

   To obtain the files from CMU, connect by anonymous ftp to any CMU CS
   machine (e.g., ftp.cs.cmu.edu [128.2.206.173]), using username
   "anonymous" and password "name@host". The files lisp-faq-1.text,
   lisp-faq-2.text, lisp-faq-3.text, lisp-faq-4.text, lisp-faq-5.text
   lisp-faq-6.text, lisp-faq-7.text, and scheme-faq-1.text are located
   in the directory 
       /afs/cs.cmu.edu/project/ai-repository/ai/pubs/faqs/
   [Note: You must cd to this directory in one atomic operation, as
   some of the superior directories on the path are protected from
   access by anonymous ftp.] If your site runs the Andrew File System,
   you can just cp the files directly without bothering with FTP.

   To obtain the files from Thinking Machines, ftp them from ftp.think.com,
   in the directory /public/think/lisp/. The file faq.text contains all the
   parts of the Lisp FAQ in one file. In addition, specific versions of the 
   FAQ are available as faq-<version>.text. The Scheme FAQ is
   available as the file scheme-faq.text, with particular versions as
   scheme-faq-<version>.text. 

The FAQ postings are also archived in the periodic posting archive on
rtfm.mit.edu [18.70.0.224]. Look in the anonymous ftp directory
/pub/usenet/news.answers/ in the subdirectory lisp-faq. If you do not
have anonymous ftp access, you can access the archive by mail server
as well.  Send an E-mail message to mail-server@rtfm.mit.edu
with "help" and "index" in the body on separate lines for more
information.

***********************************************************************
**************************** Lisp Questions ***************************
***********************************************************************

There are currently six parts to the Lisp FAQ:
   1. Introductory Matter and Bibliography of Introductions and References
   2. General Questions
   3. Common Programming Pitfalls
   4. Lisp Implementations and Mailing Lists
   5. Object-oriented Programming in Lisp 
   6. FTP Archives and Resources
   7. Lisp Window Systems and GUIs
All parts are posted to comp.lang.lisp. Part 5 is cross-posted to the
comp.lang.clos newsgroup. 

Topics Covered (Part 1):

  [1-0]   What is the purpose of this newsgroup?
  [1-1]   What is the difference between Scheme and Common Lisp?
  [1-2]   What documentation is available on Lisp? How can I learn Lisp?
  [1-3]   How can I improve my Lisp programming style and coding efficiency?
  [1-4]   Where can I learn about implementing Lisp interpreters and compilers?
  [1-5]   What does CLOS, PCL, X3J13, CAR, CDR, ... mean? 
  [1-6]   Lisp Job Postings

Topics Covered (Part 2):

  [2-1]   Is there a GNU-Emacs interface to Lisp?
  [2-2]   When should I use a hash table instead of an association list?
  [2-3]   What is the equivalent of EXPLODE and IMPLODE in Common Lisp?
  [2-4]   Is Lisp inherently slower than more conventional languages such as C?
  [2-5]   Why does Common Lisp have "#'"?
  [2-6]   How do I call non-Lisp functions from Lisp?
  [2-7]   Can I call Lisp functions from other languages?
  [2-8]   I want to call a function in a package that might not exist at
          compile time. How do I do this?  
  [2-9]   What is CDR-coding?
  [2-10]  What is garbage collection?
  [2-11]  How do I save an executable image of my loaded Lisp system?
          How do I run a Unix command in my Lisp?
          How do I get the current directory name from within a Lisp program?
  [2-12]  I'm porting some code from a Symbolics Lisp machine to some
          other platform, and there are strange characters in the code.
          What do they mean?  
  [2-13]  History: Where did Lisp come from?
  [2-14]  How do I find the argument list of a function?
          How do I get the function name from a function object?
  [2-15]  How can I have two Lisp processes communicate via unix sockets?
  [2-16]  How can I create a stream that acts like UNIX's /dev/null
          (i.e., gobbles any output and immediately signals EOF on
          input operations)?

Common Pitfalls (Part 3):

  [3-0]  Why does (READ-FROM-STRING "foobar" :START 3) return FOOBAR
         instead of BAR?  
  [3-1]  Why can't it deduce from (READ-FROM-STRING "foobar" :START 3)
         that the intent is to specify the START keyword parameter
         rather than the EOF-ERROR-P and EOF-VALUE optional parameters?   
  [3-2]  Why can't I apply #'AND and #'OR?
  [3-3]  I used a destructive function (e.g. DELETE, SORT), but it
         didn't seem to work.  Why? 
  [3-4]  After I NREVERSE a list, it's only one element long.  After I
         SORT a list, it's missing things.  What happened? 
  [3-5]  Why does (READ-LINE) return "" immediately instead of waiting
         for me to type a line?  
  [3-6]  I typed a form to the read-eval-print loop, but nothing happened. Why?
  [3-7]  DEFMACRO doesn't seem to work.
         When I compile my file, LISP warns me that my macros are undefined
         functions, or complains "Attempt to call <function> which is 
         defined as a macro.
  [3-8]  Name conflict errors are driving me crazy! (EXPORT, packages)
  [3-9]  Closures don't seem to work properly when referring to the
         iteration variable in DOLIST, DOTIMES and DO.
  [3-10] What is the difference between FUNCALL and APPLY?
  [3-11] Miscellaneous things to consider when debugging code.
  [3-12] When is it right to use EVAL?
  [3-13] Why does my program's behavior change each time I use it?
  [3-14] When producing formatted output in Lisp, where should you put the
         newlines (e.g., before or after the line, FRESH-LINE vs TERPRI,
         ~& vs ~% in FORMAT)?
  [3-15] I'm using DO to do some iteration, but it doesn't terminate. 
  [3-16] My program works when interpreted but not when compiled!

Lisp Implementations and Mailing Lists (Part 4):

  [4-0]   Free Common Lisp implementations.
  [4-1]   Commercial Common Lisp implementations.
  [4-2]   Scheme Implementations
  [4-4]   Free Implementations of Other Lisp Dialects
  [4-5]   Commercial Implementations of Other Lisp Dialects
  [4-6]   What is Dylan?
  [4-7]   What is Pearl Common Lisp?
  [4-9]   What Lisp-related discussion groups and mailing lists exist?
  [4-10]  ANSI Common Lisp -- Where can I get a copy of the draft standard?

Object-oriented Programming in Lisp (Part 5):

  [5-0]   What is CLOS (PCL) and where can I get it?
          How do you pronounce CLOS?
  [5-1]   What documentation is available about object-oriented
          programming in Lisp?  
  [5-2]   How I write a function that can access defstruct slots by
          name?  I would like to write something like 
          (STRUCTURE-SLOT <object> '<slot-name>).   
  [5-3]   How can I list all the CLOS instances in a class?
  [5-4]   How can I store data and CLOS instances (with possibly circular
          references) on disk so that they may be retrieved at some later
          time?
  [5-5]   Given the name of a class, how can I get the names of its slots?
  [5-6]   Free CLOS software.

FTP Resources (Part 6):

  [6-0] General information about FTP Resources for Lisp
  [6-1] Repositories of Lisp Software
  [6-3] Publicly Redistributable Lisp Software
  [6-6] Formatting code in LaTeX
  [6-7] Where can I get an implementation of Prolog in Lisp?

Lisp Window Systems and GUIs (Part 7):
  [7-1] How can I use the X Window System or other GUIs from Lisp?
  [7-2] What Graphers/Browsers are available?

***********************************************************************
*************************** Scheme Questions **************************
***********************************************************************

Topics Covered:
  [1-0]   What is the purpose of this newsgroup?
  [1-1]   What Scheme-related discussion groups and mailing lists exist?
  [1-2]   What is the difference between Scheme and Common Lisp?
  [1-3]   What documentation is available on Scheme? How can I learn Scheme?
  [1-4]   Where can I learn about implementing Scheme interpreters and 
          compilers?
  [1-5]   Free Scheme implementations.
  [1-6]   Commercial Scheme implementations.
  [1-7]   Standards for Scheme -- What are R4RS and IEEE P1178?
  [1-8]   How do I do object-oriented programming in Scheme?
  [1-9]   Repositories of Scheme Software
  [1-10]  Publicly Redistributable Scheme Software
  [1-11]  Where can I get an implementation of Prolog in Scheme?
  [1-12]  What does SICP, SCOOPS, R4RS, CAR, CDR, ... mean?

----------------------------------------------------------------

If you think of questions that are appropriate for these FAQs, or would
like to improve an answer, please send email to us at lisp-faq@think.com.

Note that the lisp-faq mailing list is for discussion of the content
of the FAQ postings only.  It is not the place to ask questions about
Lisp; use either the common-lisp@ai.sri.com mailing list or the
comp.lang.lisp newsgroup for that.  Likewise, it is not the place to
ask questions about Scheme; use either the scheme@ai.mit.edu mailing
list or the comp.lang.scheme newsgroup (scheme@mc.lcs.mit.edu) for
that.  If a question appears frequently in one of those forums, it
will get added to the appropriate FAQ list.

;;; *EOF*
